package com.example.examsystem.dto;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 考试数据传输对象
 * 用于前后端考试信息交互
 */
@Data
public class ExamDto {
    
    /**
     * 考试ID
     */
    private Long id;
    
    /**
     * 考试标题
     */
    private String title;
    
    /**
     * 考试描述
     */
    private String description;
    
    /**
     * 考试时长（分钟）
     */
    private Integer duration;
    
    /**
     * 总分
     */
    private Double totalScore;
    
    /**
     * 及格分数
     */
    private Double passingScore;
    
    /**
     * 考试开始时间
     */
    private LocalDateTime startTime;
    
    /**
     * 考试结束时间
     */
    private LocalDateTime endTime;
    
    /**
     * 考试状态
     */
    private String status;
    
    /**
     * 创建者ID
     */
    private Long createdBy;
    
    /**
     * 创建者姓名
     */
    private String createdByName;
    
    /**
     * 关联的试题ID列表
     */
    private List<Long> questionIds;
    
    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
    
    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
    
    /**
     * 是否允许重考
     */
    private Boolean allowRetake;
    
    /**
     * 最大重考次数
     */
    private Integer maxAttempts;
    
    /**
     * 是否随机排列试题
     */
    private Boolean shuffleQuestions;
    
    /**
     * 是否随机排列选项
     */
    private Boolean shuffleOptions;
    
    /**
     * 试题数量
     */
    private Integer questionCount;
    
    /**
     * 科目ID
     */
    private Long subjectId;
    
    /**
     * 科目名称
     */
    private String subjectName;
}

